#!/bin/bash

# 记账本APP - 真机调试脚本

echo "📱 开始在真机上调试记账本APP..."

# 设置项目根目录
PROJECT_ROOT="/home/zhangdaye/node_vue"
cd "$PROJECT_ROOT"

# 检查是否安装了Cordova
if ! command -v cordova &> /dev/null; then
    echo "❌ Cordova未安装，请先安装: sudo npm install -g cordova"
    exit 1
fi

# 检查ADB是否可用
if ! command -v adb &> /dev/null; then
    echo "❌ ADB未安装或未在PATH中"
    echo "请安装Android SDK Platform Tools"
    exit 1
fi

# 检查设备连接
echo "🔍 检查已连接的设备..."
DEVICE_COUNT=$(adb devices | grep -w "device" | wc -l)

if [ $DEVICE_COUNT -eq 0 ]; then
    echo "❌ 未检测到已连接的Android设备"
    echo ""
    echo "请确保："
    echo "1. 手机已通过USB连接到电脑"
    echo "2. 手机已开启'开发者选项'"
    echo "3. 手机已开启'USB调试'"
    echo "4. 在手机上允许了USB调试授权"
    echo ""
    echo "运行 'adb devices' 查看连接状态"
    exit 1
fi

echo "✅ 检测到 $DEVICE_COUNT 个设备"
adb devices

# 构建前端项目
echo ""
echo "🔨 构建前端项目..."
cd frontend
npm run build-only  # 跳过类型检查，直接构建
if [ $? -ne 0 ]; then
    echo "❌ 前端构建失败"
    exit 1
fi
cd "$PROJECT_ROOT"

# 复制构建文件到Cordova项目
echo "📋 复制文件到Cordova项目..."
rm -rf mobile/www/*
cp -r frontend/dist/* mobile/www/

# 获取本机IP地址
LOCAL_IP=$(hostname -I | awk '{print $1}')
echo "🌐 本机IP地址: $LOCAL_IP"

# 修改API基础URL为本地服务器IP
echo "🔧 配置API地址..."
sed -i "s|baseURL: '/api'|baseURL: 'http://${LOCAL_IP}:3000/api'|g" mobile/www/assets/*.js

# 进入mobile目录
cd mobile

# 确保Android平台已添加
cordova platform add android 2>/dev/null || echo "Android平台已存在"

# 运行在真机上
echo ""
echo "🚀 正在安装并运行应用到手机..."
echo "⏳ 这可能需要一些时间，请耐心等待..."

cordova run android --device

if [ $? -eq 0 ]; then
    echo ""
    echo "✅ 应用已成功安装到手机！"
    echo ""
    echo "📝 调试说明："
    echo "1. 应用已在手机上运行"
    echo "2. 后端服务地址: http://${LOCAL_IP}:3000"
    echo "3. 确保后端服务正在运行"
    echo "4. 确保手机和电脑在同一WiFi网络"
    echo ""
    echo "🔧 Chrome远程调试："
    echo "1. 在电脑上打开 Chrome 浏览器"
    echo "2. 访问 chrome://inspect"
    echo "3. 在 'Remote Target' 列表中找到你的应用"
    echo "4. 点击 'inspect' 开始调试"
    echo ""
    echo "📱 查看日志："
    echo "运行: adb logcat | grep Cordova"
else
    echo "❌ 安装失败"
    echo ""
    echo "💡 尝试以下解决方案："
    echo "1. 确认设备连接: adb devices"
    echo "2. 重启ADB: adb kill-server && adb start-server"
    echo "3. 检查手机USB调试是否开启"
    echo "4. 尝试重新插拔USB线"
    exit 1
fi

